adding inner loop to Thompson microphysics#685
Conversation
|
This PR is trying to do the same a the existing subcycling capability. I suggest we test if the bug fix for Thompson subcycling #684 fixes the issue with decreasing hydrometeors and associated low radar reflectivity. If #684 fixes the problem, I suggest to not merge this PR #685 in favor of the more general CCPP approach. If #684 doesn't fix the problem, we should consider removing the subcycling changes from Thompson MP and just use the inner loop approach from @RuiyuSun. |
|
Dom, Won't it be more flexible to use namelist options to turn on and off sub-stepping Thompson MP and control the number of sub-steps ? Using the sub-cycling approach one has to update SDF and recompile the model every time a change is made. |
Both approaches have their pros and cons. The SDF approach is more general, because the same capability can be used for other schemes in the same way. The namelist option has the advantage that one doesn't have to recompile. I am fine either way, but we should decide on one or the other option in my opinion. Having both approaches coded up seems like a recipe for confusion (although Ruiyu made it work - I will have one request for change later to avoid duplicating the diagnostics code in |
|
Dom, We can discuss this at the meeting today and make a decision later based on testing results. Both approaches still have issues. |
Sounds good to me. |
|
One of the "issues" I am seeing is the slightly complicated logic in lines 1155-1157 in |
|
A potential advantage of this method is to set an upper limit time step
(default value) that the microphysics scheme can use. So when the physical
time step is too large the inner loop will be automatically activated.
…On Mon, Jun 28, 2021 at 10:18 AM Dom Heinzeller ***@***.***> wrote:
One of the "issues" I am seeing is the slightly complicated logic in lines
1155-1157 in module_mp_thompson.F90 that "corrects" the user dt_inner
value so that you get an integer number of steps. Another approach is to
specify the number of steps, but either way the user has to make sure that
dt_atmos and nsteps / dt_inner are set consistently.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#685 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AKFOCLFOV5HLKUX6MEV5JSDTVCAB3ANCNFSM47MYAPVA>
.
--
Ruiyu Sun, PhD
*IMSG* at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2097
College Park, MD 20740
***@***.*** ***@***.***>
301-683-3787
|
|
Yes, that is a clear advantage. We should have a diagnostic message written out as part of the first time step, so that the user knows what is going on.
… On Jun 28, 2021, at 8:44 AM, RuiyuSun ***@***.***> wrote:
A potential advantage of this method is to set an upper limit time step
(default value) that the microphysics scheme can use. So when the physical
time step is too large the inner loop will be automatically activated.
On Mon, Jun 28, 2021 at 10:18 AM Dom Heinzeller ***@***.***>
wrote:
> One of the "issues" I am seeing is the slightly complicated logic in lines
> 1155-1157 in module_mp_thompson.F90 that "corrects" the user dt_inner
> value so that you get an integer number of steps. Another approach is to
> specify the number of steps, but either way the user has to make sure that
> dt_atmos and nsteps / dt_inner are set consistently.
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#685 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AKFOCLFOV5HLKUX6MEV5JSDTVCAB3ANCNFSM47MYAPVA>
> .
>
--
Ruiyu Sun, PhD
*IMSG* at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2097
College Park, MD 20740
***@***.*** ***@***.***>
301-683-3787
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub <#685 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AB5C2RN2U2DWJ3XB6FZFTWLTVCDGJANCNFSM47MYAPVA>.
|
|
That is right. A message at the first step will be helpful. Another
potential advantage of the inner loop is that it does not go through the
conversions between the moist and dry mixing ratios.
On Mon, Jun 28, 2021 at 11:29 AM Dom Heinzeller ***@***.***>
wrote:
… Yes, that is a clear advantage. We should have a diagnostic message
written out as part of the first time step, so that the user knows what is
going on.
> On Jun 28, 2021, at 8:44 AM, RuiyuSun ***@***.***> wrote:
>
>
> A potential advantage of this method is to set an upper limit time step
> (default value) that the microphysics scheme can use. So when the
physical
> time step is too large the inner loop will be automatically activated.
>
>
> On Mon, Jun 28, 2021 at 10:18 AM Dom Heinzeller ***@***.***>
> wrote:
>
> > One of the "issues" I am seeing is the slightly complicated logic in
lines
> > 1155-1157 in module_mp_thompson.F90 that "corrects" the user dt_inner
> > value so that you get an integer number of steps. Another approach is
to
> > specify the number of steps, but either way the user has to make sure
that
> > dt_atmos and nsteps / dt_inner are set consistently.
> >
> > —
> > You are receiving this because you were mentioned.
> > Reply to this email directly, view it on GitHub
> > <#685 (comment)
>,
> > or unsubscribe
> > <
https://github.com/notifications/unsubscribe-auth/AKFOCLFOV5HLKUX6MEV5JSDTVCAB3ANCNFSM47MYAPVA
>
> > .
> >
>
>
> --
>
> Ruiyu Sun, PhD
>
> *IMSG* at NOAA/NWS/NCEP/EMC
>
> 5830 University Research Ct., Rm. 2097
>
> College Park, MD 20740
>
> ***@***.*** ***@***.***>
>
> 301-683-3787
> —
> You are receiving this because your review was requested.
> Reply to this email directly, view it on GitHub <
#685 (comment)>, or
unsubscribe <
https://github.com/notifications/unsubscribe-auth/AB5C2RN2U2DWJ3XB6FZFTWLTVCDGJANCNFSM47MYAPVA
>.
>
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#685 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AKFOCLFRX2G667UIGLXYXZTTVCINPANCNFSM47MYAPVA>
.
--
Ruiyu Sun, PhD
*IMSG* at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2097
College Park, MD 20740
***@***.*** ***@***.***>
301-683-3787
|
Yes, I have been struggling with whether to perform the conversion only at the first (convert to) and last (convert from) time step. This would be ok and essentially the same as your inner loop, but only as long as nobody puts another scheme/computation in the Thompson subcycle group in the suite definition file. |
|
|
||
| !> - Call calc_refl10cm() | ||
|
|
||
| diagflag_presenti: IF ( PRESENT (diagflag) ) THEN |
There was a problem hiding this comment.
The code duplication in lines 1432-1472 can and should be avoided if I see this correctly by using the appropriate combination of conditions.
|
Thank you for your suggestion. The logic has been modified.
…On Mon, Jun 28, 2021 at 5:13 PM Dom Heinzeller ***@***.***> wrote:
***@***.**** requested changes on this pull request.
------------------------------
In physics/module_mp_thompson.F90
<#685 (comment)>:
> +
+ SR(i,j) = (pcp_sn(i,j) + pcp_gr(i,j) + pcp_ic(i,j))/(RAINNC(i,j)+1.e-12)
+ RAINNCV(i,j) = RAINNC(i,j)
+ IF ( PRESENT (snowncv) ) THEN
+ SNOWNCV(i,j) = SNOWNC(i,j)
+ ENDIF
+ IF ( PRESENT (icencv) ) THEN
+ ICENCV(i,j) = ICENC(i,j)
+ ENDIF
+ IF ( PRESENT (graupelncv) ) THEN
+ GRAUPELNCV(i,j) = GRAUPELNC(i,j)
+ ENDIF
+
+!> - Call calc_refl10cm()
+
+ diagflag_presenti: IF ( PRESENT (diagflag) ) THEN
The code duplication in lines 1432-1472 can and should be avoided if I see
this correctly by using the appropriate combination of conditions.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#685 (review)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AKFOCLCNGZTWAD6VE7PRCE3TVDQYDANCNFSM47MYAPVA>
.
--
Ruiyu Sun, PhD
*IMSG* at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2097
College Park, MD 20740
***@***.*** ***@***.***>
301-683-3787
|
climbfuji
left a comment
There was a problem hiding this comment.
Looks good to me except one tiny change, thanks for updating the logic.
| !> - Call calc_refl10cm() | ||
|
|
||
| diagflag_present: IF ( PRESENT (diagflag) ) THEN | ||
| diagflag_presenti: IF ( PRESENT (diagflag) ) THEN |
There was a problem hiding this comment.
Can you revert this change (additional i) please?
| enddo | ||
| endif | ||
| ENDIF diagflag_present | ||
| ENDIF diagflag_presenti |
There was a problem hiding this comment.
Same here, can you revert this change (additional i) please?
|
'i' is removed. Thanks.
…On Wed, Jun 30, 2021 at 4:46 PM Dom Heinzeller ***@***.***> wrote:
***@***.**** requested changes on this pull request.
Looks good to me except one tiny change, thanks for updating the logic.
------------------------------
In physics/module_mp_thompson.F90
<#685 (comment)>:
>
!> - Call calc_refl10cm()
- diagflag_present: IF ( PRESENT (diagflag) ) THEN
+ diagflag_presenti: IF ( PRESENT (diagflag) ) THEN
Can you revert this change (additional i) please?
------------------------------
In physics/module_mp_thompson.F90
<#685 (comment)>:
> @@ -1426,7 +1459,7 @@ SUBROUTINE mp_gt_driver(qv, qc, qr, qi, qs, qg, ni, nr, nc, &
refl_10cm(i,k,j) = MAX(-35., dBZ(k))
enddo
endif
- ENDIF diagflag_present
+ ENDIF diagflag_presenti
Same here, can you revert this change (additional i) please?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#685 (review)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AKFOCLFN6XR7APW5F25X74LTVN7BLANCNFSM47MYAPVA>
.
--
Ruiyu Sun, PhD
*IMSG* at NOAA/NWS/NCEP/EMC
5830 University Research Ct., Rm. 2097
College Park, MD 20740
***@***.*** ***@***.***>
301-683-3787
|
|
@RuiyuSun since we discussed at the last Thompson MP meeting that the way forward is to temporarily accept both approaches (inner loop and subcycling), would you mind if I sent you a PR to include my bug fixes in your PR? |
Merge "Bugfix in Thompson MP, pass correct timestep to core routine" into "Adding inner loop to Thompson microphysics"
This is to add an inner loop to the Thomspon microphysics scheme with a namelist option.